﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Interfaces;

namespace Model
{
    public class Kunde : IKundedata
    {
        // Attributter
        private int kundeNr;
        private int cvrNr;
        private string firmanavn;
        private string kontaktperson;
        private string email;
        private int tlfNr;
        private string adresse;
        private int postnr;
        private string bynavn;

        private List<Projekt> mineKundeProjekter;

        // konstruktør
        public Kunde(int kundeNr, int cvrNr, string firmanavn, string kontaktperson, string email, int tlfNr, string adresse, int postnr, string bynavn)
        {
            this.kundeNr = kundeNr;
            this.cvrNr = cvrNr;
            this.firmanavn = firmanavn;
            this.kontaktperson = kontaktperson;
            this.email = email;
            this.tlfNr = tlfNr;
            this.adresse = adresse;
            this.postnr = postnr;
            this.bynavn = bynavn;

            mineKundeProjekter = new List<Projekt>();
        }

        #region Associeringsmetoder

        // metode til at associere et projekt-objekt til et kunde-objekt
        public void TilknytProjekt(Projekt etProjekt)
        {
            mineKundeProjekter.Add(etProjekt);
        }

        // metode til at hente liste af associerede projekter
        public IEnumerator GetMineProjekter()
        {
            return mineKundeProjekter.GetEnumerator();
        }

        // metode til at fjerne et associeret projekt-objekt
        public void FjernProjekt(Projekt etProjekt)
        {
            mineKundeProjekter.Remove(etProjekt);
        }

        #endregion

        #region Properties

        public int KundeNr
        {
            get { return kundeNr; }
        }

        public int CvrNr
        {
            get { return cvrNr; }
            set { cvrNr = value; }
        }

        public string Firmanavn
        {
            get { return firmanavn; }
            set { firmanavn = value; }
        }

        public string Kontaktperson
        {
            get { return kontaktperson; }
            set { kontaktperson = value; }
        }

        public string Email
        {
            get { return email; }
            set { email = value; }
        }

        public int TlfNr
        {
            get { return tlfNr; }
            set { tlfNr = value; }
        }

        public string Adresse
        {
            get { return adresse; }
            set { adresse = value; }
        }

        public int Postnr
        {
            get { return postnr; }
            set { postnr = value; }
        }

        public string Bynavn
        {
            get { return bynavn; }
            set { bynavn = value; }
        }

        #endregion
    }
}
